package rdatabase

import (
	"gorm.io/driver/sqlite"
	"gorm.io/gorm"
	"gorm.io/gorm/logger"
	"log"
)

type InitSQLite struct {
	FilePath string `json:"file_path"`
}

// Connect 连接到SQLite数据库
// logMod：gorm的日志打印等级
// closeAffair：是否关闭事务功能，不使用事务的情况下，关闭它会有更好的性能。
func (p *InitSQLite) Connect(logMod logger.LogLevel, closeAffair bool) *gorm.DB {
	_client, err := gorm.Open(sqlite.Open(p.FilePath), &gorm.Config{
		Logger:                 logger.Default.LogMode(logMod),
		SkipDefaultTransaction: closeAffair,
	})
	if err != nil {
		log.Fatal("连接 SQLite 数据库", p.FilePath, "失败：", err)
	}
	log.Println("连接 SQLite 数据库", p.FilePath, "完成")
	return _client
}
